menuitem: deprecate arrow-scaling style property
authorCosimo Cecchi <cosimoc@gnome.org>
Fri, 18 Dec 2015 05:54:46 +0000 (21:54 -0800)
committerCosimo Cecchi <cosimoc@gnome.org>
Sun, 20 Dec 2015 05:21:16 +0000 (21:21 -0800)
With this, we can also remove the custom measure function of the arrow
gadget.

gtk/gtkmenuitem.c
gtk/theme/Adwaita/_common.scss
gtk/theme/Adwaita/gtk-contained-dark.css
gtk/theme/Adwaita/gtk-contained.css
gtk/theme/HighContrast/_common.scss
gtk/theme/HighContrast/gtk.css

index 10a0168963acc013de6fe96d2c0ade68f47278c7..e1192edc3098098a14b0dc71757e5a3404ed0a20 100644 (file)
@@ -309,41 +309,6 @@ gtk_menu_item_render_arrow (GtkCssGadget *gadget,
   return FALSE;
 }
 
-static void
-gtk_menu_item_measure_arrow (GtkCssGadget   *gadget,
-                             GtkOrientation  orientation,
-                             int             for_size,
-                             int            *minimum,
-                             int            *natural,
-                             int            *minimum_baseline,
-                             int            *natural_baseline,
-                             gpointer        data)
-{
-  GtkWidget *widget = gtk_css_gadget_get_owner (gadget);
-  PangoContext *context;
-  PangoFontMetrics *metrics;
-  gfloat arrow_scaling;
-  gint size;
-
-  gtk_widget_style_get (widget,
-                        "arrow-scaling", &arrow_scaling,
-                        NULL);
-
-  context = gtk_widget_get_pango_context (widget);
-
-  metrics = pango_context_get_metrics (context,
-                                       pango_context_get_font_description (context),
-                                       pango_context_get_language (context));
-
-  size = arrow_scaling *
-    (PANGO_PIXELS (pango_font_metrics_get_ascent (metrics) +
-                   pango_font_metrics_get_descent (metrics)));
-
-  pango_font_metrics_unref (metrics);
-
-  *minimum = *natural = size;
-}
-
 static gboolean
 gtk_menu_item_render (GtkCssGadget *gadget,
                       cairo_t      *cr,
@@ -995,12 +960,21 @@ gtk_menu_item_class_init (GtkMenuItemClass *klass)
                                                              10,
                                                              GTK_PARAM_READABLE|G_PARAM_DEPRECATED));
 
+  /**
+   * GtkMenuItem:arrow-scaling:
+   *
+   * Amount of space used up by the arrow, relative to the menu item's font
+   * size.
+   *
+   * Deprecated: 3.20: use the standard min-width/min-height CSS properties;
+   *   the value of this style property is ignored.
+   */
   gtk_widget_class_install_style_property (widget_class,
                                            g_param_spec_float ("arrow-scaling",
                                                                P_("Arrow Scaling"),
                                                                P_("Amount of space used up by arrow, relative to the menu item's font size"),
                                                                0.0, 2.0, 0.8,
-                                                               GTK_PARAM_READABLE));
+                                                               GTK_PARAM_READABLE|G_PARAM_DEPRECATED));
 
   /**
    * GtkMenuItem:width-chars:
@@ -1628,7 +1602,7 @@ gtk_menu_item_set_submenu (GtkMenuItem *menu_item,
               priv->arrow_gadget =
                 gtk_css_custom_gadget_new_for_node (priv->arrow_node,
                                                     GTK_WIDGET (menu_item),
-                                                    gtk_menu_item_measure_arrow,
+                                                    NULL,
                                                     NULL,
                                                     gtk_menu_item_render_arrow,
                                                     NULL, NULL);
index d1a965a762323f1ad797c61b533959f37a99b23a..db608cd3ffda71ddd3f42e9d972416f24405f477 100644 (file)
@@ -1517,6 +1517,8 @@ menu,
     & arrow {
       -gtk-icon-source: -gtk-icontheme('pan-end-symbolic');
       margin-left: 10px;
+      min-height: 16px;
+      min-width: 16px;
     }
     & arrow:dir(rtl) {
       -gtk-icon-source:-gtk-icontheme('pan-end-symbolic-rtl');
index b6b081edf8ceabf64b3466f1c66789d0895075ab..9d8ecadda1ba3c68ff5ea286310712f4866ffc84 100644 (file)
@@ -2126,7 +2126,9 @@ menu,
     menu menuitem arrow,
     .menu menuitem arrow {
       -gtk-icon-source: -gtk-icontheme("pan-end-symbolic");
-      margin-left: 10px; }
+      margin-left: 10px;
+      min-height: 16px;
+      min-width: 16px; }
     menu menuitem arrow:dir(rtl),
     .menu menuitem arrow:dir(rtl) {
       -gtk-icon-source: -gtk-icontheme("pan-end-symbolic-rtl");
index 64eba19cebbe04b78b8944829bba194fcc546f6b..ecfed3ecb61e7e11a46f0d36b3d8f5447eff4344 100644 (file)
@@ -2132,7 +2132,9 @@ menu,
     menu menuitem arrow,
     .menu menuitem arrow {
       -gtk-icon-source: -gtk-icontheme("pan-end-symbolic");
-      margin-left: 10px; }
+      margin-left: 10px;
+      min-height: 16px;
+      min-width: 16px; }
     menu menuitem arrow:dir(rtl),
     .menu menuitem arrow:dir(rtl) {
       -gtk-icon-source: -gtk-icontheme("pan-end-symbolic-rtl");
index fa2aeceabd0668c1c7c007891b08f880d3092748..257fd8286422657d1966af7e7db3d06a9bc85ab1 100644 (file)
@@ -1178,6 +1178,8 @@ menu,
     min-width: 40px;
     & arrow {
       margin-left: 10px;
+      min-height: 16px;
+      min-width: 16px;
     }
     & arrow:dir(rtl) {
       margin-right: 10px;
index 10fa379760f46f6b57c936c6851e2b9e26fad41f..3b6ef36932373a3b3f170369f214d38b71f8e5a6 100644 (file)
@@ -1306,7 +1306,9 @@ menu,
     min-width: 40px; }
     menu menuitem arrow,
     .menu menuitem arrow {
-      margin-left: 10px; }
+      margin-left: 10px;
+      min-height: 16px;
+      min-width: 16px; }
     menu menuitem arrow:dir(rtl),
     .menu menuitem arrow:dir(rtl) {
       margin-right: 10px; }